//go:build linux
// +build linux

package utils

import (
	"os"
	"path"
)

// WriteToFile 将内容写入文件。
func WriteToFile(content []byte, filePath string, hide bool) (err error) {
	var file *os.File
	_, err = os.Stat(filePath)
	if os.IsNotExist(err) {
		err = os.MkdirAll(path.Dir(filePath), os.ModePerm)
		if err != nil {
			return
		}
		file, err = os.Create(filePath)
		if err != nil {
			return
		}
	} else {
		file, err = os.OpenFile(filePath, os.O_APPEND|os.O_WRONLY, os.ModeAppend)
		if err != nil {
			return
		}
	}
	// 将内容写入文件
	_, err = file.Write(content)
	file.Close()
	if hide {
		//// 获取文件句柄
		//var h syscall.Handle
		//h, err = syscall.CreateFile(syscall.StringToUTF16Ptr(filePath),
		//	syscall.GENERIC_READ|syscall.GENERIC_WRITE,
		//	0,
		//	nil,
		//	syscall.OPEN_EXISTING,
		//	syscall.FILE_ATTRIBUTE_NORMAL,
		//	0)
		//if err != nil {
		//	return
		//}
		//defer syscall.CloseHandle(h)
		//// 设置文件属性为隐藏
		//err = syscall.SetFileAttributes(syscall.StringToUTF16Ptr(filePath),
		//	syscall.FILE_ATTRIBUTE_HIDDEN)
		//if err != nil {
		//	return
		//}
	}
	return
}
